/** 
	插件名称  :  menu
	插件功能  :  横向导航栏
	参数      :  {
					url:getMenu.do
				 }
*/
 define(['usercenter'],function (usercenter){
 	// 菜单json格式
 	var menuDataArray = [];
 	var menuMoveVal = 0;
 	var autoHeightInit = false
 	return {
 		render : function (el ,opt){
 			var tis = this;
 			var buffer = [];
 			var urlArray = [];

 			var el_hor_menu = $('<div class="hor-menu"></div>')
 			var el_pg_left_menu_ul = $("#pg_left_menu_ul")

			el.after(el_hor_menu);
		 	el.remove();

		 	var el_hor_ul = $('<ul class="hor-ul" style="height:70px"></ul>').appendTo(el_hor_menu)

 			xd_ajax_get({
 				url : opt.url,
				 //maskObj : "body",
				paramObj:opt.paramObj,
 				isLoad : false,
 				server : index_web_app_name,
 				successCallBack : function(data)
 				{
 					var el_first_li
 					var menuObj
 					menuDataArray = data;
		 			for (var i=0;i<menuDataArray.length;i++)
		 			{
		 				menuObj = menuDataArray[i];
		 				if (menuObj.showFlag == 0)
		 					continue;
		 				el_first_li = $('<li class="__menu_li" menu_id="'+menuObj.label+'"><a href="javascript:void(0);">'
		 											+'<i class="__plus_fold"></i><i class="__icon ' + menuObj.icon +'"></i><div class="first-menu-name">'
		 													+menuObj.label+'</div></a>').appendTo(el_pg_left_menu_ul)
		 				if (menuObj.children)
		 					createSecondMenu(el_first_li ,menuObj.children)
		 			}

		 			fitstMenuClick()

		 			tis.initMenuMove();
 					menuOffsetLeft = $(".hor-ul").width();

 					// 是否隐藏菜单
					if (index_urlParamObj.hideMenu == "1")
					{
						tis.menuHide()
					}

					url_integrate()

					// url哈希值改变事件
				    $(window).hashchange(function() {
						 goToPage();
				     });

				    // 初始化跳转
				    goToPage();
 				}
 			});

			function goToPage(){
				var url = getUrl()
				var menuObj
				if (urlArray.indexOf(url) == -1)
				{
					url = index_user_info.menuId;
					
					if (!index_user_info.menuId)
					{
						var urlFlag = false
						var submenu
			 			for (var i=0;i<menuDataArray.length;i++)
			 			{
			 				menuObj = menuDataArray[i];
			 				if (menuObj.children)
			 				{
				 				for (var j=0;j<menuObj.children.length;j++)
				 				{
				 					submenu = menuObj.children[j];
				 					if (!urlFlag && submenu.href)
				 					{
				 						urlFlag = true
				 						index_user_info.menuId = submenu.href;
				 						url = index_user_info.menuId
				 					}
				 				}
			 				}
				 		}
				 		url = "/" + url;
					}
					if (!index_is_IE9)
						window.history.pushState("","", "#" + index_user_info.menuId);
					else
						location.hash = "#" + index_user_info.menuId
				}

				menu_heightLight($("#pg_left_menu_ul").find('[href*="'+url+'"]'))
				
				//设置为透明并移出进场动画
				$("#content_div").css("opacity" ,"0");
				$("#content_div").removeClass("fadeInUp");			
				$.ajax({
					type: "GET",
					url: index_web_app_name + "module" + url + ".html",
					dataType: "html",
					success :function(data)
					{
						// 移除之前的绑定事件
						g_dialog.elDialogHide()
						g_dialog.operateAlertHide()
						g_dialog.tipDialogHide()
						$("#pg_left_menu_ul").show();
						$("#pg-left-menu-outer").show();
						$("#content_div").css("overflow-y" ,"auto");
						$("#content_div").css("overflow-x" ,"hidden");
						$("#content_div").css("padding" ,"0 10px 10px 10px");
						$("[class*=datetimepicker]").remove()
						$(window).off('.module');
						$(document).off(".module");
						$(document).off(".fd");
						$("body").off(".inputdrop");
						$("body").off(".grid");
						$("body").off(".dialog");
						$("body").off(".fd");
						onWindowResize && onWindowResize.remove();
						$(window).slimscroll({} ,true);
						$("#index_timer_inp").stopTime();
						// 渲染页面并添加进场动画
						$("#content_div").empty()
						$("#content_div").html(data);

						// IE9浏览器需要执行下面这句话
						if (index_is_IE9) 
							$("#content_div").css("opacity" ,"1");

						$("title").html("集中管控平台");

						// 清除dialog
						$("[class*=um_mask]").remove();

						// 清除waiting
						$("[class*=umDialog-waiting]").remove();
						
						$("body").oneTime(100 ,function (){
							$("#content_div").addClass("fadeInUp");
						});

						// 动画结束了，再执行初始化方法
						$("body").oneTime(500 ,function (){
							// 页面公共初始化方法
							index_init($("#content_div"));
							if (!autoHeightInit){
								$("#pg_left_menu_ul").slimscroll({})
								autoHeightInit = true
							}
						});
					}
				});
			}

			function getUrl(){
				var url = window.location.hash.substr(1);
				var tmp = url.indexOf("?");
				if (tmp == -1)
				{
					return url;
				}
				else
				{
					return url.substr(0,tmp);
				}
			}

			function fitstMenuClick(){
				el_pg_left_menu_ul.find("[class*=__menu_li]").click(function (){
					if ($(this).hasClass("pactive"))
					{
						$(this).find("[class*=__second_div]").hide()
						$(this).removeClass("pactive")
					}
					else
					{
						el_pg_left_menu_ul.find("[class*=__second_div]").hide()
						$(this).find("[class*=__second_div]").show()
						$(this).siblings().removeClass("pactive")
						$(this).addClass("pactive")
					}	
				})
			}

	 		function createSecondMenu(el_first_li ,menuList){
	 			if (!menuList || menuList.length == 0)
	 				return false
	 			var el_second_div = $('<div class="__second_div"></div>').appendTo(el_first_li)

	 			for (var i = 0; i < menuList.length; i++) {
	 				el_second_div.append('<div><div class="__border"></div><div class="__menu">'
	 										+'<a class="__menu_a" href="#'+menuList[i].href+'">'+menuList[i].label+'</a></div></div>')

	 				urlArray.push(menuList[i].href)
	 			}

	 			el_second_div.find("[class*=__menu_a]").click(function (){
	 				menu_heightLight($(this) ,true)
	 				return false
	 			})
	 		}

	 		// 菜单高亮
	 		function menu_heightLight(el_menu_a ,flag){
	 			var el_menu_title = $("#menu_title")

	 			el_pg_left_menu_ul.find("[class*=__menu_a]").removeClass("active")
	 			el_menu_a.addClass("active")

	 			el_pg_left_menu_ul.find("[class*=__menu_li]").removeClass("sactive")
	 			el_menu_a.closest("[class*=__menu_li]").addClass("sactive")

	 			$("#menu_title_content").html(el_menu_a.text())

	 			if (flag)
	 				window.location = el_menu_a.attr("href") + "?time=" + new Date().getTime();
	 		}

	 		function url_integrate()
	 		{
	 			urlArray.push("/monitor_config/monitor_config_hash_edit")
	 			urlArray.push("/monitor_obj/monitor_info")
	 			urlArray.push("/base_resource_mant/control_domain_hash_edit")
	 			urlArray.push("/exclusive/exclusive_hash_detail")
	 			urlArray.push("/monitor_config/topo_manage_detail")
	 			urlArray.push("/monitor_config/app_monitor_manage_detail")
	 			urlArray.push("/monitor_obj/app_monitor_show_detail")
	 			urlArray.push("/monitor_obj/topo_show_detail")
	 			urlArray.push("/event_alarm/perform_event_analy_hash_detail")
	 			urlArray.push("/monitor_obj/terminal_List_detail")
	 			urlArray.push("/monitor_obj/interface_info")
	 		}
 		},
 		menuHide : function (){
 			$("#pg-content").css("padding" ,"0")
 			$("#pg-header").remove()
 			$(".pg-logo").remove()
 			$("#menu_title").remove()
 			$("#pg-left-menu-outer").remove()
 		},
 		initMenuMove : function (el){
 			var left_move = $("[class*=hor-menu-left]");
 			var right_move = $("[class*=hor-menu-right]");
 			right_move.click(function (){
 				if (menuMoveVal == -9)
 				{
 					return false;
 				}
 				else
 				{
 					menuMoveVal--;
 					$("[class=hor-ul]").find("li").css("left",menuMoveVal*87 + "px");
 				}
 			});
 			left_move.click(function (){
 				if (menuMoveVal == 9)
 				{
 					return false;
 				}
 				else
 				{
 					menuMoveVal++;
 					$("[class=hor-ul]").find("li").css("left",menuMoveVal*87 + "px");
 				}
 			});
 		}
 	};
 });